C/C++

推荐列表 站点导航

当前位置:首页 > 脚本编程 > C/C++ >

C++_MFC自定义消息的实现方法,一、概述:消息机制是windows

来源:网络整理  作者:  发布时间:2020-12-20 13:32
MFC自定义消息的实现方法,一、概述:消息机制是windows程序的典型运行机制,在MFC中有很多已经封装好了的消息,如...

class CTestDlg : public CDialog { protected: …… // 生成的消息映射函数 …… afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam); // add lyw DECLARE_MESSAGE_MAP() ……


消息机制是windows程序的典型运行机制,在MFC中有很多已经封装好了的消息,如WM_BTN**等。但是在有些特殊情况下我们需要自定义一些消息去完成一些我们所需要的功能,这时候MFC的向导不能帮助我们做到这一点。对此,我们可以通过添加相应的代码去完成这个功能。

BEGIN_MESSAGE_MAP(CTestDlg, CDialog) …… ON_REGISTERED_MESSAGE(WM_MyMessage, OnMyMessage) END_MESSAGE_MAP()

2. 在资源中添加要处理的消息的值,即在CTestDlg.h中添加 如下代码。 (因为很多MFC的消息是在WM_USER内的,所以这里用比WM_USER大的消息)

LRESULT CTestDlg::OnMyMessage(WPARAM wParam, LPARAM lParam) { //MessageBox("recv msg success"); //添加自己的消息处理 …… return 0; }

SendMessage( WM_MyMessage, 0, 0);

static UINT WM_MyMessage = RegisterWindowMessage("myMessage");

3.测试消息时,如果要让多个应用程序都接收到这个消息,需要使用:

5. 实现自己的自定义消息处理:
1. 建立MFC工程,如基于对话框的应用程序,Test。

PostMessage(WM_MyMessage, 0, 0);

如果要定义系统唯一的消息让多个应用程序去处理,不同之处如下:

添加自定义消息操作如下:

2. 上面4步骤中的代码用如下代替:

6. 如果要发送一个自定义的消息,需要使用代码

::SendMessage(HWND_BROADCAST, WM_MyMessage, 0, 0);

3. 声明消息处理函数,在CTestDlg.h中添加如下代码:

二、实现方法:

BEGIN_MESSAGE_MAP(CTestDlg, CDialog) …… ON_MESSAGE(WM_MyMessage, OnMyMessage) END_MESSAGE_MAP()

#define WM_MyMessage (WM_USER+100)

 

 

1. 把上面2步骤中的宏 #define WM_MyMessage (WM_USER+100) 使用如下代码代替:
 

或者

4. 添加消息映射处理,在CTestDlg.cpp中人找到如下部分添加代码:

相关热词: windows 方法 C++

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/jiaob/cjj/6113.shtml

最新文章
只需要在调用Ctrl+B编译后 只需要在调用Ctrl+B编译后

时间:2021-01-13

OpenGL超级宝典visual studio OpenGL超级宝典visual studio

时间:2021-01-04

Directx11 教程(2) 基本的wi Directx11 教程(2) 基本的wi

时间:2021-01-04

LeetCode11ContainerWithMostWate LeetCode11ContainerWithMostWate

时间:2021-01-04

C语言简单IT之家速成 C语言简单IT之家速成

时间:2020-12-27

三分钟了解Activity工作流 三分钟了解Activity工作流

时间:2020-12-27

编译器是如何实现32位整型 编译器是如何实现32位整型

时间:2020-12-27

C++中lower_bound函数和upper C++中lower_bound函数和upper

时间:2020-12-27

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

C++_MFC自定义消息的实现方法,一、概述:消息机制是windows

2020-12-20 编辑:

class CTestDlg : public CDialog { protected: …… // 生成的消息映射函数 …… afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam); // add lyw DECLARE_MESSAGE_MAP() ……


消息机制是windows程序的典型运行机制,在MFC中有很多已经封装好了的消息,如WM_BTN**等。但是在有些特殊情况下我们需要自定义一些消息去完成一些我们所需要的功能,这时候MFC的向导不能帮助我们做到这一点。对此,我们可以通过添加相应的代码去完成这个功能。

BEGIN_MESSAGE_MAP(CTestDlg, CDialog) …… ON_REGISTERED_MESSAGE(WM_MyMessage, OnMyMessage) END_MESSAGE_MAP()

2. 在资源中添加要处理的消息的值,即在CTestDlg.h中添加 如下代码。 (因为很多MFC的消息是在WM_USER内的,所以这里用比WM_USER大的消息)

LRESULT CTestDlg::OnMyMessage(WPARAM wParam, LPARAM lParam) { //MessageBox("recv msg success"); //添加自己的消息处理 …… return 0; }

SendMessage( WM_MyMessage, 0, 0);

static UINT WM_MyMessage = RegisterWindowMessage("myMessage");

3.测试消息时,如果要让多个应用程序都接收到这个消息,需要使用:

5. 实现自己的自定义消息处理:
1. 建立MFC工程,如基于对话框的应用程序,Test。

PostMessage(WM_MyMessage, 0, 0);

如果要定义系统唯一的消息让多个应用程序去处理,不同之处如下:

添加自定义消息操作如下:

2. 上面4步骤中的代码用如下代替:

6. 如果要发送一个自定义的消息,需要使用代码

::SendMessage(HWND_BROADCAST, WM_MyMessage, 0, 0);

3. 声明消息处理函数,在CTestDlg.h中添加如下代码:

二、实现方法:

BEGIN_MESSAGE_MAP(CTestDlg, CDialog) …… ON_MESSAGE(WM_MyMessage, OnMyMessage) END_MESSAGE_MAP()

#define WM_MyMessage (WM_USER+100)

 

 

1. 把上面2步骤中的宏 #define WM_MyMessage (WM_USER+100) 使用如下代码代替:
 

或者

4. 添加消息映射处理,在CTestDlg.cpp中人找到如下部分添加代码:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/jiaob/cjj/6113.shtml

相关文章

风云图片

推荐阅读

返回C/C++频道首页